package com.you.raft.core;

import com.you.raft.common.entity.LogEntry;

public interface LogModule {

    /**
     * 写日志
     */
    void write(LogEntry logEntry);

    /**
     * 最后一个日志
     */
    LogEntry getLast();

    /**
     * 最后一个日志索引
     */
    long getLastIndex();

    /**
     * 根据索引号获取日志
     */
    LogEntry get(long index);

    /**
     * 移除索引index及其之后的所有日志
     */
    void removeStartWith(long index);
}
